function showResult(number):number;

function showResult(string):void;

// 实现上面两个签名
function showResult(n:any):number|void {
    if (typeof n == 'number') {
        console.log("数值 = ",n);
        return n;
    }
    console.log("字符串 = ",n);
}

showResult(1);
showResult("1");

// 作业：定义两个重载方法，方法名要求都是getSum。
//   方法1：传入数值，返回1到它本身的整数和。
//   方法2：传入字符串，把字符串转为整数后，求1到它的整数和。
function getSum(number):number;

function getSum(string):number;

function getSum(n:number|string):number {
    let result:number = 0;
    if (typeof n == 'number') {
        for (let i = 1;i <= n;i ++) {
            result += i;
        }
        return result;
    } else if (typeof n == 'string') {
        return getSum(parseInt(n));
    } else {
        console.error("数据类型不规范")
        return 0;
    }
}

let result:number = getSum(10);
console.log(result);

result = getSum('100');
console.log(result);